import { cookieTokenName, getToken, removeToken } from "../auth";
import Toast from "../../../node_modules/@vant/weapp/dist/toast/toast";
import config from "@/config/config.json";
import { goWebview } from "@/utils/index.js";
/**
 * @description 针对接口返回的错误进行处理
 * @param {*} res
 * @returns
 */
export async function responseHandle(res) {
  if (typeof res.data === "string") {
    res.data = JSON.parse(res.data);
  }
  // // 响应成功，业务失败
  // if (res.status === 200 || res.statusCode === 200) {
  //   const { code } = res.data;
  //   if (code !== 200 || (code == 200 && res.data && res.data.state < 1)) {
  //     Toast.fail(res.data.message);
  //     return Promise.reject(res);
  //   } else {
  //     return res.data;
  //   }
  // }

  // 响应成功，业务失败
  if (res.status === 200 || res.statusCode === 200) {
    const { code } = res.data;
    if (code == 200 && res.data && res.data.state < 1 && res.data.remark) {
      Toast.fail(res.data.remark);
      return Promise.reject(res);
    } else if (code !== 200) {
      Toast.fail(res.data.message);
      return Promise.reject(res);
    }
    return res.data;
  }

  // 处理401 token 失效问题
  else if (res.status === 401 || res.statusCode === 401 || res.code === 401) {
    // if (!getToken()) {
    //   Toast.fail(res.data.message);
    if (!getToken()) {
      await Toast.fail({
        message: "登录已失效",
      });
      // 未登录过
      goWebview({
        pageUrl: "silentLogin",
        redirect: "/pages/loginTransit/index&source=mp",
        inviteCode: uni.getStorageSync("inviteCode") || null,
      });
      uni.removeStorageSync("inviteCode");
    } else {
      await Toast.fail({
        message: "登录已失效",
      });
      uni.navigateTo({ url: "/pages/wxlogin/index" });
      removeToken();
    }
  } else if (res.status === 413 || res.statusCode === 413) {
    Toast.fail("图片文件过大");
  } else {
    if (res.data?.message) {
      Toast.fail(res.message || res.data.message);
    }
    return Promise.reject(res);
  }
}
